package com.neuedu.corejava.ch4;

public class Array2 {

	public static void main(String[] args) {
		//座位：班级座位，电影院座位
		//设计一个二维数组，保存班级同学的座位信息
		//二维数组的定义：
		//String sits[][] = new String[10][];--错误：必须指定行
		String sits[][] = new String[10][];
		//锯齿数组：Java没有严格意义的二维数组，而是指代数组的数组;
		//二维数组的第二维度可以是不相等，理解为列数可以不相等：称为锯齿数组
		sits[0] = new String[6];//第一行有6列
		sits[1] = new String[3];//第一行有3列
		sits[2] = new String[9];//第一行有9列
		
		sits[0][0] = "陆家学";
		sits[0][1] = "陆家学1";
		sits[0][2] = "陆家学2";
		sits[0][3] = "陆家学3";
		
		sits[1][0] = "陆家学4";
		sits[1][1] = "陆家学5";
		sits[1][2] = "陆家学6";
		
		//二维数组的遍历
		System.out.println(sits.length);//注意：使用数组名.length获取的数组长度是第一唯度的长度；二维数组的第一维度长度是相同的
        //使用二重循环遍历二维数组
		for (int r = 0; r < sits.length; r++) {//先遍历出第一维度，行
			if (sits[r]!=null) {
				for (int c = 0; c < sits[r].length; c++) {//再遍历出每一列的数据，注意：每一行的列数可能不一样
					System.out.print(sits[r][c] +"\t");
			}
				System.out.println();
			}
			else {
				System.out.println("第"+(r+1)+"没有数据");
			}
		}
		
		//二维数组的其他第一方法
		String[] sits2 [] = new String[10][3];
		String[][] sits3 = new String[10][3];
		String sits4[][] = new String[10][3];
		//String sits4[][] = new String[][];//错误：必须指定行数（第一维度数）
		//[][]String sits5 = new String[10][3];//错误
		//直接赋值时不能指定行数和列数
		//------
		
		for (String[] row : sits) {
			if (row!=null) {
				for (String name :row) {
					System.out.println(name+"\t");	
			}
				System.out.println();
			}else {
				System.out.println("该行数据为null");
			}
			
		}
			
	}

}
